﻿Imports System.Windows.Forms
Imports DNP.GestionComercial.BE
Imports DNP.GestionComercial.BL
Imports DNP.GestionComercial.Util
Imports DNP.GestionComercial.FormBase
Public Class frmMantRepresentantes


    Inherits frmFormBase
#Region "declaracion de variables"
    'Dim _strAccion As String = ""
    'Const _Update As String = "UPDATE"
    'Const _Insert As String = "INSERT"
    Dim oMsg As New sisMensaje
#End Region
    Public Sub New()

        ' Llamada necesaria para el diseñador.
        InitializeComponent()
        lblTitulo.Text = "Mantenimiento de Representantes"
        Me.tbpLista.Text = "Lista de Representastes"
        inicializarcontroles()

        Listar()
        'LlenaDetalle(0)

        ' Agregue cualquier inicialización después de la llamada a InitializeComponent().

    End Sub

    Private Sub inicializarcontroles()
        Dim obeRespuesta As New RespuestaBE
        Dim lstParametrica As New List(Of ParametricaBE)
        Dim lstCargo As New List(Of ParametricaBE)
        Dim oblParametrica As New ParametricaBL
        txtCodigo.Enabled = False
        gbxEntidad.Visible = True
        txtEntidad.Visible = True
        txtEntidad.Enabled = True

        lblEntidad.Visible = True
        lblEntidad.Text = "Personal"

       
        ' cargar tipo de documento

        obeRespuesta = oblParametrica.listarParametricas(1)

        If obeRespuesta.Respuesta Then
            lstParametrica = CType(obeRespuesta.ValorRertono, List(Of ParametricaBE))
            sisFunciones.Load_Combo(cmbTipoDoc, lstParametrica, "NPAR_CODIGO", "CPAR_VALOR", False, 0)
        Else
            oMsg.showMsgWarning(obeRespuesta.Mensaje)

        End If

        ' cargar ubigeo
        Dim oblUbigeo As New UbigeoBL
        Dim lstDepartamentos As New List(Of UbigeoBE)
        sisFunciones.Carga_ComboFromEnum(cmbEstado, GetType(sisEnum.EstadoBD))


        obeRespuesta = oblUbigeo.ObtenerDepartamentos()

        If obeRespuesta.Respuesta Then
            lstDepartamentos = CType(obeRespuesta.ValorRertono, List(Of UbigeoBE))
            sisFunciones.Load_Combo(cmbDepartamento, lstDepartamentos, "UGEO_DEPARTAMENTO", "UGEO_NOMBRE", False, "00")
        Else
            oMsg.showMsgWarning(obeRespuesta.Mensaje)

        End If

    End Sub
    'Protected Overloads Sub grdLista_DataBindingComplete(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewBindingCompleteEventArgs)
    '    If e.Row.R = DataControlRowType.DataRow Then
    '        ' ASIGNA EVENTOS
    '        e.Row.Attributes.Add("OnMouseOver", "Resaltar_On(this);")
    '        e.Row.Attributes.Add("OnMouseOut", "Resaltar_Off(this);")
    '        e.Row.Attributes("OnClick") = Page.ClientScript.GetPostBackClientHyperlink(Me.grvObjetivosEsp, "Select$" + e.Row.RowIndex.ToString)
    '        With CType(e.Row.DataItem, ObjetivosEspecificosBE)
    '            e.Row.Cells(1).Text = Server.HtmlDecode(.FLag)
    '            e.Row.Cells(2).Text = Server.HtmlDecode(.coes_codobjesp)
    '            e.Row.Cells(3).Text = Server.HtmlDecode(.COES_DESCRIP)
    '            e.Row.Cells(4).Text = Server.HtmlDecode(.COES_ENCARGO)
    '            e.Row.Cells(5).Text = Server.HtmlDecode(baHerramienta.FormatearDocSAGU(.COES_CODIGO, Constantes.DocumentosSAGU.Encargo))


    '        End With
    '    End If


    'End Sub

    Private Sub FormatGrid()

        grdLista.AutoGenerateColumns = False
        grdLista.Columns.Clear()
        grdLista.Columns.Add("NREP_CODIGO", "Código")
        grdLista.Columns.Add("CPER_DOCUMENTO", "Documento")
        grdLista.Columns.Add("CPER_NOMBRE", "Nombre")
        grdLista.Columns.Add("CPER_APELLIDO", "Apellido")
        grdLista.Columns.Add("CPER_TLFNO", "Teléfono")
        grdLista.Columns.Add("CPER_EMAIL_01", "E-mail")





        grdLista.Columns(0).DataPropertyName = "NREP_CODIGO"
        grdLista.Columns(1).DataPropertyName = "CPER_DOCUMENTO"
        grdLista.Columns(2).DataPropertyName = "CPER_NOMBRE"
        grdLista.Columns(3).DataPropertyName = "CPER_APELLIDO"
        grdLista.Columns(4).DataPropertyName = "CPER_TLFNO"
        grdLista.Columns(5).DataPropertyName = "CPER_EMAIL_01"



        grdLista.Columns(0).Width = 60
        grdLista.Columns(1).Width = 120
        grdLista.Columns(2).Width = 120
        grdLista.Columns(3).Width = 160
        grdLista.Columns(4).Width = 160
        grdLista.Columns(5).Width = 160



        grdLista.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(3).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(3).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(4).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(4).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter

        grdLista.Columns(5).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        grdLista.Columns(5).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter




    End Sub

#Region "Operaciones"
    Private Sub Listar()

        Dim oberespuesta As New RespuestaBE
        Dim olstEntidad As New List(Of RepresentanteBE)
        Dim oblEntidad As New RepresentanteBL
        Dim obeParametro As New PARAMETROBE
        obeParametro.PARAMETRO01 = txtEntidad.Text
        oberespuesta = oblEntidad.listarRepresentante(obeParametro)
        If oberespuesta.Respuesta Then


            FormatGrid()
            grdLista.DataSource = oberespuesta.ValorRertono 'olstEntidad
            grdLista.Refresh()
        Else
            oMsg.showMsgWarning(oberespuesta.Mensaje)
            MsgBox(oberespuesta.Mensaje)
        End If





    End Sub
    Private Function validar() As Boolean
        Return True

    End Function
    Private Sub guadarInformacion()
        Dim obeEntidad As New RepresentanteBE

        'obeEntidad.CAUDI_USR_INS = "u60546"
        'obeEntidad.DAUDI_FEC_INS = Date.Now
        If Trim(txtCodigo.Text) = "" Then
            obeEntidad.NREP_CODIGO = 0
        Else
            obeEntidad.NREP_CODIGO = CInt(txtCodigo.Text)
        End If
        With obeEntidad

            .NPRO_CODIGO = txtCodigoProveedor.Text
            .CPER_TIPO_DOC = cmbTipoDoc.SelectedValue
            .CPER_DOCUMENTO = txtNroDoc.Text
            .CPER_NOMBRE = txtNombre.Text
            .CPER_APELLIDO = txtApellido.Text
            .CPER_TLFNO = txtTelefono.Text
            .CPER_TLFNO_CEL = txtCelular.Text
            .CPER_EMAIL_01 = txtEmail1.Text
            .CPER_EMAIL_02 = txtEmail2.Text
            .CPER_UBIGEO = cmbDepartamento.SelectedValue + cmbProvincia.SelectedValue + cmbDistrito.SelectedValue
            .CPER_DIRECCION = txtDireccion.Text
            .CREP_ESTADO = cmbEstado.SelectedValue
            '.DAUDI_FEC_INS = Date.Now
            '.CAUDI_USR_INS = "u60546"
            
        End With
       



        If (objListaError.intNumError > 0) Then
            showError()
            objListaError.intNumError = 0
        Else
            Dim oblEntidad As New RepresentanteBL
            Dim orespuesta As New RespuestaBE
            orespuesta = oblEntidad.GuardarRepresentante(obeEntidad)
            If orespuesta.Respuesta Then
                txtCodigo.Text = orespuesta.Mensaje
                oMsg.showMsgInformation("msgExitoGuardar")
                Listar()
                tbcMantenimiento.SelectedIndex = 0
            Else
                oMsg.showMsgWarning("msgErrorGuardar")
            End If

        End If




    End Sub

    Private Sub EliminarEntidad(ByVal pCodigo As Integer)
        Dim oblEntidad As New RepresentanteBL
        Dim obeparametro As New PARAMETROBE
        Dim oberespuesta As New RespuestaBE
        obeparametro.PARAMETRO01 = pCodigo
        obeparametro.PARAMETRO02 = "U60546"
        oberespuesta = oblEntidad.EliminarRepresentante(obeparametro)
        If oberespuesta.Respuesta Then
            txtCodigo.Text = oberespuesta.Mensaje
            oMsg.showMsgInformation("msgExitoEliminar")
            Listar()
            tbcMantenimiento.SelectedIndex = 0
        Else
            oMsg.showMsgWarning("msgErrorEliminar")
        End If



    End Sub
    Private Sub LlenaDetalle(ByVal intTab As Integer)
        LimpiarControles()
        Dim intFila As Integer = -1
        If grdLista.RowCount = 0 Then
            Return
        End If
        intFila = grdLista.CurrentRow.Index
        If intFila <> -1 Then
            If grdLista.Rows(intFila).Selected Then
                '_strAccion = _Update
                If intTab >= 0 Then
                    tbcMantenimiento.SelectedIndex = intTab
                    txtCodigo.Text = grdLista.Rows(intFila).Cells(0).Value.ToString().Trim()
                    obtenerdatos(txtCodigo.Text)
                    tsbGuardar.Visible = True

                End If

            End If
        End If
    End Sub
    Private Sub obtenerdatos(ByVal codigo As String)
        If codigo <> "0" Then
            Dim oberespuesta As New RespuestaBE
            Dim oblEntidad As New RepresentanteBL
            Dim obeEntidad As New RepresentanteBE
            oberespuesta = oblEntidad.listarRepresentantexCodigo(codigo)
            If oberespuesta.Respuesta Then
                obeEntidad = CType(oberespuesta.ValorRertono, RepresentanteBE)



                With obeEntidad
                    txtCodigo.Text = CStr(.NREP_CODIGO)

                    cmbTipoDoc.SelectedValue = .CPER_TIPO_DOC
                    txtNroDoc.Text = .CPER_DOCUMENTO
                    txtNombre.Text = .CPER_NOMBRE
                    txtApellido.Text = .CPER_APELLIDO
                    txtTelefono.Text = .CPER_TLFNO
                    txtCelular.Text = .CPER_TLFNO_CEL
                    txtEmail1.Text = .CPER_EMAIL_01
                    txtEmail2.Text = .CPER_EMAIL_02
                    '= .CPER_UBIGEO
                    txtDireccion.Text = .CPER_DIRECCION

                    Try
                        cmbDepartamento.SelectedValue = .CPER_UBIGEO.Substring(0, 2)
                    Catch ex As Exception
                        cmbDepartamento.SelectedValue = "00"
                    End Try
                    Try
                        cmbProvincia.SelectedValue = .CPER_UBIGEO.Substring(2, 2)
                    Catch ex As Exception
                        cmbProvincia.SelectedValue = "00"
                    End Try
                    Try
                        cmbDistrito.SelectedValue = .CPER_UBIGEO.Substring(4, 2)
                    Catch ex As Exception
                        cmbDistrito.SelectedValue = "00"
                    End Try

                    cmbEstado.SelectedValue = .CREP_ESTADO
                End With



            End If
        End If

       

    End Sub

    Private Sub LimpiarControles()
        txtApellido.Clear()
        txtCelular.Clear()
        txtCodigo.Clear()
        txtEmail1.Clear()
        txtEmail2.Clear()
        txtNombre.Clear()
        txtNroDoc.Clear()
        txtTelefono.Clear()
        txtDireccion.Clear()
        cmbDepartamento.SelectedValue = "00"
        cmbProvincia.SelectedValue = "00"
        cmbDistrito.SelectedValue = "00"

        cmbTipoDoc.SelectedValue = 0


    End Sub

#End Region

    Private Sub cmbDepartamento_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbDepartamento.SelectedIndexChanged
        If cmbDepartamento.SelectedIndex >= 0 And Not cmbDepartamento.SelectedValue Is Nothing Then
            Dim obeRespuesta As New RespuestaBE
            Dim lstUbigeo As New List(Of UbigeoBE)
            Dim oblUbigeo As New UbigeoBL
            Dim dpto As String = DirectCast(cmbDepartamento.SelectedItem, UbigeoBE).UGEO_DEPARTAMENTO
            obeRespuesta = oblUbigeo.ObtenerProvincia(dpto)

            If obeRespuesta.Respuesta Then
                lstUbigeo = CType(obeRespuesta.ValorRertono, List(Of UbigeoBE))
                sisFunciones.Load_Combo(cmbProvincia, lstUbigeo, "UGEO_PROVINCIA", "UGEO_NOMBRE", False, "00")
            Else
                oMsg.showMsgWarning(obeRespuesta.Mensaje)

            End If
        Else
            cmbProvincia.SelectedValue = "00"
        End If
    End Sub

    Private Sub cmbProvincia_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbProvincia.SelectedIndexChanged
        If cmbProvincia.SelectedIndex >= 0 And Not cmbDepartamento.SelectedValue Is Nothing Then
            Dim obeRespuesta As New RespuestaBE
            Dim lstUbigeo As New List(Of UbigeoBE)
            Dim oblUbigeo As New UbigeoBL
            Dim dpto As String = DirectCast(cmbDepartamento.SelectedItem, UbigeoBE).UGEO_DEPARTAMENTO
            Dim prov As String = DirectCast(cmbProvincia.SelectedItem, UbigeoBE).UGEO_PROVINCIA
            obeRespuesta = oblUbigeo.ObtenerDistrito(dpto, prov)

            If obeRespuesta.Respuesta Then
                lstUbigeo = CType(obeRespuesta.ValorRertono, List(Of UbigeoBE))
                sisFunciones.Load_Combo(cmbDistrito, lstUbigeo, "UGEO_DISTRITO", "UGEO_NOMBRE", False, "00")
            Else
                oMsg.showMsgWarning(obeRespuesta.Mensaje)

            End If
        End If
    End Sub

#Region "Accion Botones"
    Protected Overrides Sub tsbSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Me.Close()
    End Sub
    Protected Overrides Sub tsbListar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        Listar()

    End Sub
    Protected Overrides Sub tsbNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        LimpiarControles()
        cmbEstado.Focus()
        tbcMantenimiento.SelectedIndex = 1
        cmbEstado.SelectedIndex = 1
        tsbGuardar.Visible = True
    End Sub
    Protected Overrides Sub tsbGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
        If validar() Then
            If oMsg.showMsgQuestion("msgQuestionGuardar") = DialogResult.Yes Then
                guadarInformacion()
            End If

        End If

    End Sub
    Protected Overrides Sub grdLista_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        LlenaDetalle(0)


    End Sub
    Protected Overrides Sub tsbAbrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub
    Protected Overrides Sub tsbEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

        Dim intFila
        If grdLista.RowCount = 0 Then
            Return
        End If
        Try
            If grdLista.Rows(0).Cells(0).Value.ToString().Trim() Is Nothing Or _
                grdLista.Rows(0).Cells(0).Value.ToString().Trim() = "0" Then
                Return
            End If
        Catch ex As Exception
            Return
        End Try
       

        intFila = grdLista.CurrentRow.Index
        If intFila <> -1 Then
            If grdLista.Rows(intFila).Selected Then
                Dim codigo As Integer = CType(grdLista.Rows(intFila).Cells(0).Value.ToString().Trim(), Integer)

                If (oMsg.showMsgQuestion("msgQuestionDelete") = DialogResult.Yes) Then
                    EliminarEntidad(codigo)
                End If
            End If
        End If

    End Sub

#End Region

  
   
   
    Private Sub tbpDetalle_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tbpDetalle.Click
        If txtCodigo.Text <> "" And txtCodigo.Text <> "0" Then
            tsbGuardar.Visible = True
        Else
            tsbGuardar.Visible = True
        End If
    End Sub
End Class